Pertanyaan Sering Muncul (FAQ):

"Maksud dari fungsi dan scope variabel itu bagaimana ya? Agak susah membedakan dan mencari scope-nya..."

Apa itu Fungsi (Functions)?

👩‍🏫 Secara Formal:

Fungsi (Function) adalah sekumpulan blok kode yang dibungkus dengan sebuah nama dan dirancang untuk melakukan tugas spesifik tertentu. Dalam C++, kita memberikan input (parameter) ke dalam fungsi, lalu fungsi tersebut akan memprosesnya dan dapat mengembalikan sebuah output (return value).

Analogi Jaman Now

"Bayangin Fungsi itu kayak Mesin Pembuat Kopi (Coffee Maker) di cafe."

  • Parameter (Input): Biji Kopi dan Air. Kamu masukin ke dalam mesin.
  • Proses (Isi Fungsi): Mesin menggiling kopi, memanaskan air, menyeduh (ini logic kodenya).
  • Return (Output): Secangkir Kopi Panas! Mesin mengeluarkan (return) hasilnya ke kamu.

Kenapa kita butuh mesin kopi? Biar kalau ada 10 pelanggan yang pesan kopi, kamu ndak perlu manual numbuk kopi 10 kali. Tinggal panggil fungsi (nyalain mesin) berkali-kali! Ini yang namanya Reusability (kode bisa dipakai ulang).

Contoh Kode: Fungsi Sederhana

// Deklarasi fungsi (Mesin Kopi) int tambah(int a, int b) { // a, b = bahan input int hasil = a + b; // proses return hasil; // output kopi jadi } int main() { int x = tambah(3, 7); // panggil fungsi, x = 10 cout << x; // Output: 10 return 0; }

Coba Tebak: Berapa output kode ini?

int kaliDua(int n) { return n * 2; } int main() { cout << kaliDua(5) + kaliDua(3); return 0; }

Scope Variabel (Global vs Lokal)

👩‍🏫 Secara Formal:

Scope (Cakupan/Ruang Lingkup) menentukan di bagian kode mana sebuah variabel bisa dilihat, diakses, atau diubah.

  • Variabel Global: Dideklarasikan di luar semua fungsi. Bisa diakses oleh semua fungsi di seluruh file.
  • Variabel Lokal: Dideklarasikan di dalam kurung kurawal {} milik sebuah fungsi (atau blok if/for). Hanya hidup dan bisa diakses di dalam kurung kurawal tersebut.

Analogi Jaman Now (Menjawab "Gimana Cara Nyarinya?")

"Gimana cara bedain dan nyari scope-nya? Gini perumpamaannya:"

  • Variabel Global = TV di Ruang Tamu. TV ini ditaruh di luar kamar siapapun. Jadi seluruh anggota keluarga (semua fungsi) bisa nonton dan ganti channel TV itu. Kalau kamu ganti ke RCTI, pas orang lain lewat, dia juga lihat channelnya udah RCTI.
  • Variabel Lokal = HP di kantong celana kamu. HP ini ada di dalam areamu pribadi. Orang lain (fungsi lain) ndak tau passwordnya dan ndak bisa asal ambil HP dari kantongmu. Kalau kamu ubah wallpaper HP, HP orang lain ndak ikutan berubah.

"Cara nyarinya gampang: Lihat posisinya! Kalau ada tulisan int x; di luarrrr banget (bukan di dalam kurung kurawal mana pun), itu TV Ruang Tamu (Global). Kalau ada di dalam int main() { ... }, itu HP kantong (Lokal)."

Contoh Kode: Lihat Posisi Variabelnya!

int skor = 100; // GLOBAL (di luar semua fungsi) void kurangiNyawa() { int nyawa = 3; // LOKAL (hanya ada di sini) nyawa = nyawa - 1; skor = skor - 10; // bisa akses skor karena GLOBAL } int main() { kurangiNyawa(); cout << skor; // bisa akses skor (GLOBAL) // cout << nyawa; // ERROR! nyawa tidak dikenal di sini return 0; }

Coba Tebak: Berapa nilai skor yang dicetak?

Lab Interaktif: Tracing Variabel

Sekarang kita simulasikan eksekusi kode C++ di bawah ini. Coba tebak apa hasil output akhirnya!

int x = 10; // GLOBAL (TV Ruang Tamu) void ubahNilai() { int x = 50; // LOKAL (HP Kantong Fungsi ini) x = x + 10; } int main() { ubahNilai(); cout << x; return 0; }

Berapa angka yang di-print di layar (cout)?

Soal Tracing Bonus: Fungsi + Parameter

int misteri(int a, int b) { a = a + 1; b = b * 2; return a + b; } int main() { int x = 3, y = 4; int z = misteri(x, y); cout << x << " " << y << " " << z; return 0; }

Apa output yang tercetak?

Question Card

Kenapa sangat dilarang membuat terlalu banyak Variabel Global di dalam pemrograman OSN yang panjang?

Klinik Fungsi & Scope Selesai!